package xginxauth

import (
	"encoding/json"

	"gitee.com/xiaoyutab/xgotool/optional/xauth"
	"gitee.com/xiaoyutab/xgotool/xgin"
	"gitee.com/xiaoyutab/xgotool/xstring"
	"github.com/gin-gonic/gin"
)

// 权限创建
//
//	POST	/auth.create
func authCreate(c *gin.Context) *xgin.Response {
	type temp_struct struct {
		Id        json.Number `json:"id" form:"id" xml:"id"`                         // 条目ID
		Fid       json.Number `json:"fid" form:"fid" xml:"fid"`                      // 上级条目ID
		Code      string      `json:"code" form:"code" xml:"code"`                   // 权限code标识，menu:xxx、page:xxx、button:xxx、api:xxx的形式来区分各个权限
		Title     string      `json:"title" form:"title" xml:"title"`                // 权限显示title
		Type      json.Number `json:"type" form:"type" xml:"type"`                   // 权限所属类型 1-默认权限
		CreatedAt string      `json:"created_at" form:"created_at" xml:"created_at"` // 创建时间
	}
	temp := temp_struct{}
	if err := xgin.Bind(c, &temp); err != nil {
		return xgin.Resp().Error(err)
	}
	// 正式变量赋值
	// 请使用param进行参数验证、变量效验等操作
	param := xauth.Authority{}
	param.Id = xstring.JUint(temp.Id)
	param.Fid = xstring.JUint(temp.Fid)
	param.Code = temp.Code
	param.Title = temp.Title
	param.Type = xstring.JUint(temp.Type)
	param.UserId = c.GetUint("uid")
	param.CreatedAt = temp.CreatedAt
	if param.Type == 0 {
		param.Type = 1
	}
	if err := xauth.CreateAuth(&param); err != nil {
		return xgin.Resp().Error(err)
	}
	return xgin.Resp().SuccessEmpty()
}
